A processor, which is an arithmetic processing device, fetches, decodes, and executes instruction codes of software. Software instructions include a memory access instruction relating to memory access, such as a load instruction and a store instruction. Meanwhile, a certain memory area is reserved by executing a memory area allocation function. When a memory access instruction relating to the memory area which has thus been reserved is executed, the presence of bugs or erroneous codes in a program results in memory corruption in which data in a memory outside the intended memory area are overwritten on unintended data. Alternatively, a failure occurs when the data in the memory outside the intended memory area are loaded.
Related arts are US Patent 2013/0013843, Japanese Issued Patent H01-33857, H03-68421 and “How Debuggers Work, Algorithms, Data Structures, and Architecture”, Jonathan B. Rosenberg.